S3 バージョニングで特定のバージョンを復元したい

S3 バージョニングで特定のバージョンを復元したい

バージョニングを有効化したS3バケットで、特定のバージョンを復元する方法をご紹介します。
Clock Icon2024.06.13

困っていたこと

バージョニングを有効化したS3バケットで、特定のバージョンを復元したいのですが方法が分かりません。

どうすればいいのか

特定バージョンを復元する方法について、AWSドキュメントに以下の記載があります。

以前のバージョンの復元 - Amazon Simple Storage Service

バージョニングを使用すると、オブジェクトの以前のバージョンを取得できます。この機能を実行するには 2 つの方法があります。
・オブジェクトの以前のバージョンを同じバケットにコピーします。
コピーされたオブジェクトはそのオブジェクトの最新バージョンになり、すべてのオブジェクトバージョンが維持されます。
・オブジェクトの最新バージョンを完全に削除します。
最新のオブジェクトバージョンを削除すると、結果として、以前のバージョンがそのオブジェクトの最新バージョンになります。

上記ドキュメントでは一旦以前のバージョンをダウンロードしてから該当バケットにアップロードする方法が紹介されていますが、 今回はCLIで以前のバージョンをコピーすることで最新バージョンとする方法をご紹介します。

手順

  1. バージョニングを有効にしたS3バケットにてバージョンがあるオブジェクトを選択→バージョンタブにて復元したいバージョンIDを確認します

2.以下のコマンドを実行します

 
aws s3api copy-object \

--bucket <バケット名> \

--copy-source "<バケット名>/<フォルダ名>/<オブジェクト名>?versionId=<バージョンID>" \

--key <フォルダ名>/<オブジェクト名>
 

3.コンソールから対象のオブジェクトの詳細ページを確認し、コピーしたバージョンが最新となっていることを確認します。 

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.